0

我尝试了以下方法:

 <!-- Specify the inputs by type and file name -->
<ItemGroup>
    <CSFile Include = "$(MSBuildProjectDirectory)\..\Mine.cs"/>
</ItemGroup>

<Target Name = "Compile">
    <!-- Run the Visual C# compilation using input files of type CSFile -->
       <Csc Sources="@(CSFile)" />
    <!-- Log the file name of the output file -->
    <Message Text="The output file is done"/>
</Target>

这不起作用,因为项目中使用的所有命名空间都会引发错误。有谁知道我如何明确地让程序集从解决方案文件中获取,因为路径没问题,如果在 Visual Studio 中加载一切都很好。我需要为此编写脚本,但上述内容不起作用。有没有明显的事故?

感谢输入:-)

我已经意识到这不会起作用,因为我拥有的文件有几个外部依赖项。因此我需要使用 devenv.exe。问题是我得到以下信息:

我得到的是命令以代码 1 退出?我想让项目构建它需要的所有依赖 dll,而无需打开 Visual Studio。

有任何想法吗?

谢谢 :-)

4

1 回答 1

0

试试这个(添加你自己的 dll 引用)

<ItemGroup>
  <CSFile Include = "$(MSBuildProjectDirectory)\..\Mine.cs"/>
  <Reference Include="System.dll"/>
  <Reference Include="System.Data.dll"/>
  <Reference Include="System.Drawing.dll"/>
  <Reference Include="System.Windows.Forms.dll"/>
  <Reference Include="System.XML.dll"/>
</ItemGroup>
<Target Name = "Compile">
    <!-- Run the Visual C# compilation using input files of type CSFile -->
       <Csc Sources="@(CSFile)" 
            References="@(Reference)"
            OutputAssembly="$(builtdir)\$(MSBuildProjectName).exe"
            TargetType="exe" />
            />
    <!-- Log the file name of the output file -->
    <Message Text="The output file is done"/>
</Target>
于 2009-09-22T19:20:12.903 回答