这是针对VS2010下的Windows窗体项目.
这是我从MSBuild得到的消息:
错误RG0000:无法加载文件或程序集"3rdPartyAssemblyUsedByProject,Version = 1.1.263.0,Culture = neutral,PublicKeyToken = 687bce93d7ce902c"或其依赖项之一.访问被拒绝.第174行,第5行.[C:\ xxx\src\BackOffice.csproj]
这是用于启动它的命令行:
c:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/msbuild.exe BackOffice.csproj /p:PlatformTarget=x86
Run Code Online (Sandbox Code Playgroud)
resx文件的第174行归因于错误:
<data name="generalImages.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
...
</value>
</data>
Run Code Online (Sandbox Code Playgroud)
generalImages是一个ImageList控件,其中包含用于表单上按钮的图像.
这在我的开发机器上工作正常,但在我的构建服务器上是一个问题.我的工作站是Windows 7 64位,构建服务器是Windows 2008 Server 64位.构建服务器确实安装了Windows 7.1 sdk.
如果我使用v3.5框架中的msbuild,则编译成功完成.我确实得到了这个警告消息,这个消息在这一点上没有引起任何问题:项目文件包含ToolsVersion ="4.0",这个版本的MSBuild不支持.像处理ToolsVersion ="3.5"那样处理项目.
这样做的全部原因是实际上以4.0框架为目标并使用方法默认值,这在定位3.5时不起作用.
我在这个搜索和搜索过.我遇到了很多与32位/ 64位问题有关的点击 - 图像格式是问题所在,但这不是我的问题.此错误表示"访问被拒绝".我确实使用fuslogvw来试图找出拒绝访问的来源 - 但我没有看到它,但它实际上并没有找到任何程序集.程序集不在GAC中,而是在项目文件引用所在的项目文件的切向目录中.
这是融合日志:
*装配活页夹日志条目(2010年8月30日下午1:44:48)*
操作失败.绑定结果:hr = 0x80070002.该系统找不到指定的文件.
程序集管理器从以下位置加载:C:\ Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll在可执行文件C:\ Program Files\Microsoft SDKs\Windows\v7.1\Bin\ResGen.exe --- A下运行详细的错误日志如下.
===预绑定状态信息=== LOG:User = domain\user LOG:DisplayName = 3rdPartyAssemblyUsedByProject,Version = 1.1.263.0,Culture = neutral,PublicKeyToken = 687bce93d7ce902c(完全指定)LOG:Appbase = file:///C:/ Program Files/Microsoft SDKs/Windows/v7.1/Bin/LOG:Initial PrivatePath = NULL LOG:Dynamic Base = NULL LOG:Cache Base …
由于性能原因,我有一些结构类型,并且有一些共性.我想知道我是否可以将它们重构为开放式结构 - 如果可以的话我是否应该期待任何问题.
我试图在开放泛型类型上创建,其中有一个构造函数可供派生类型使用,但我要么不知道如何操作,要么不可能 - 不确定哪个.
public struct DataType<T> : IDataType {
private T myValue;
private TypeState myState;
internal DataType<T>(T initialValue, TypeState state) {
myValue = initialValue;
myState = state;
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢!
科特
编辑:构造函数最初发布为私有,这是错误的,应该受到保护.但是 - 结构中不允许保护,因此我将其更改为内部.