我已经在monodevelop(在Ubuntu 11.10上为2.6)中创建了一个Tarball项目,用于从Windows移植到mono-land的C#解决方案。它目前设置为解决方案中的每个项目生成新的makefile,没有设置开关。
当我构建tarball项目时,我最终会遇到一些错误:
档案''没找到。
......看起来它们会导致下游的这些错误:
解决方案'(等等)'正在引用文件''它位于根解决方案目录之外。
我已按照此related issue的建议尝试删除.pidb文件。但我的问题更多还是包装时间问题;构建解决方案工作得很好。有没有人想出(1)如何确定项目窒息的文件,以及(2)如何在输出中包含这些文件?
答案 0 :(得分:2)
我可以用MonoDevelop 2.8.6.3重现同样的问题。尝试导出项目或创建tarball时出现以下错误:
File '(...)/Microsoft.Net.Client.3.5' not found.
File '(...)/Microsoft.Net.Framework.3.5.SP1' not found.
File '(...)/Microsoft.Windows.Installer.3.1' not found.
File '' not found.
File '' not found.
The project '(ProjectName)' is referencing the file '' which is located outside the project directory.
The project '(ProjectName)' is referencing the file '' which is located outside the project directory.
解决方案:您需要清理.CSPROJ
个文件,使其与MonoDevelop兼容。
就我而言,我通过删除以下条目来消除File '' not found
错误:
<SignAssembly>true</SignAssembly>
不知何故,我在Visual Studio的Project Properties窗口中检查了“Sign assembly”复选框选项,但没有提供密钥文件的路径。
我通过删除这个ItemGroup来消除其他错误:
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
希望能帮助别人!