在VisualStudio上添加文件作为链接-调试和发布?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (3)
  • 关注 (0)
  • 查看 (613)

每次我必须将一个文件链接到一个ASP.NET项目作为链接,我总是忘记做一些事情,因为VisualStudio在这些方面太多错误,太烦人了。它有一个bug/限制,因此它不会将文件复制到Debug输出文件夹中,而且我们必须更改文件的属性,以便将其复制到发布输出文件夹中。

经过大量的研究,我创建了一个AfterBuild目标,以帮助简化这个过程。但是,在添加文件时仍有一些手工工作要做。

下面是我维护的一个项目的示例。假设我们希望在ASP.NET项目的“实用程序”文件夹中添加YIUCARD文件。

1)右键单击VisualStudio上的“实用程序”文件夹并选择“Add->现有项”。

2)选择要添加的文件,单击一次(不要双击)。

3)点击“添加”按钮旁边的箭头,选择“添加为链接”。

目前,这将毫无作用。该文件不会复制到任何文件夹(调试和发布)。它刚刚被添加到项目中。

4)右键单击文件并打开属性。

5)将“构建操作”改为“内容”“复制到输出目录”改为“始终复制”

此时,文件将被复制到发布输出文件夹中(我们在发布时定义的任何地方)。但是,当我们在本地调试(F5)时,它将无法工作,因为文件没有复制到代码库上的本地“实用程序”文件夹中。

6)选择“全部保存”,在VisualStudio上保存更改。这样就可以保存“.csproj”文件,因为我们对它进行了更改,现在我们将手动编辑它。

7)打开Notepad++中的“.csproj”。

8)将文件添加到“BeforeBuild”事件(以下是我的):

 <Target Name="BeforeBuild">
    <ItemGroup>
      <UtilitiesFiles Include="..\path\to\file\REDOPXX.NEW" />
      <UtilitiesFiles Include="..\path\to\file\REDFMTST" />
      <UtilitiesFiles Include="..\path\to\file\JOBCARD" />
      <UtilitiesFiles Include="..\path\to\file\YIUCARD" />
    </ItemGroup>
    <Copy SourceFiles="@(UtilitiesFiles)" DestinationFolder=".\utilities" SkipUnchangedFiles="true" />
  </Target>

9)我有一个用于发布模式的“AfterBuild”事件,该事件自动为我发布项目,因此文件直接进入我想要的输出文件夹:

  <Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release' ">
    <PropertyGroup>
      <OutputDir>..\path\to\publish\MyProject</OutputDir>
    </PropertyGroup>
    <Message Importance="High" Text="Output DIR: $(OutputDir)" />
    <RemoveDir Directories="$(OutputDir)" ContinueOnError="true" />
    <MSBuild Projects="MyProject.csproj" Properties="Configuration=$(Configuration);WebProjectOutputDir=$(OutputDir);OutDir=$(OutputDir)bin\" Targets="ResolveReferences;_CopyWebApplication" />
  </Target>

10)将文件保存在记事本++中,并在VisualStudio上重新加载它。

当您构建项目时,该文件将被复制到Debug和发布/发布文件夹中!

然而,我想知道是否有任何更简单/直观的方法来做到这一点。

您可能会说,通过将Debug输出文件夹更改为与Relation/Publisding文件夹相同的文件夹,可以解决这一问题,以便在我第一次发布之后文件就会出现在那里。但是,请注意,这也有一个bug。如果我使用“bin\”以外的输出文件夹,ASPX文件会抱怨它们找不到程序集。即使我将“复制到输出目录”设置为“始终复制”,它也会抱怨找不到“Global.asax.cs”。

请参阅以下相关问题:

解析器错误消息:无法加载类型的TestMvcApplication。MvcApplication‘

“无法加载类型。[命名空间]。全球让我悲伤

在新版本的VisualStudio中,这是固定的/改进的吗?

提问于

扫码关注云+社区

领取腾讯云代金券