小编fli*_*ubt的帖子

VS.NET 2010/MSBUILD可以为.NET 3.5 SP1生成XmlSerializers吗?

我刚刚将包含WinForms,通用库和Web应用程序的VS 2008解决方案升级到VS 2010,但所有项目仍然针对.NET 3.5 SP 1.我使用此技术为我的常用库生成XmlSerializers.WinForms应用程序运行正常.当我的Web应用程序尝试使用引用相同XmlSerializers的这些库运行时,它会抛出以下内容:

'/ WebSubscribers'应用程序中的服务器错误.无法加载文件或程序集"Ceoimage.Basecamp.XmlSerializers"或其依赖项之一.此程序集由比当前加载的运行时更新的运行时构建,无法加载.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.BadImageFormatException:无法加载文件或程序集"Ceoimage.Basecamp.XmlSerializers"或其依赖项之一.此程序集由比当前加载的运行时更新的运行时构建,无法加载.

我已经使用.NET Reflector查看了XmlSerializer的引用,并看到它引用了2.0和4.0版本mscorlib以及3.5和4.0版本System.Data.Linq.奇怪的是,它只使用4.0版本System.Xml.那可能是我的问题.

如何使用这些XmlSerializers运行Web应用程序?当我简单地删除那些XmlSerializers时,Web应用程序运行正常.这是一个选项,但是如何强制MSBUILD为特定版本的CLR创建序列化程序?

这是我添加到项目文件的MSBuild任务,它强制创建XmlSerializers:

<Target Name="AfterBuild" DependsOnTargets="AssignTargetPaths;Compile;ResolveKeySource" Inputs="$(MSBuildAllProjects);@(IntermediateAssembly)" Outputs="$(OutputPath)$(_SGenDllName)">
 <Delete Files="$(TargetDir)$(TargetName).XmlSerializers.dll" ContinueOnError="true" />
 <SGen BuildAssemblyName="$(TargetFileName)" BuildAssemblyPath="$(OutputPath)" References="@(ReferencePath)" ShouldGenerateSerializer="true" UseProxyTypes="false" KeyContainer="$(KeyContainerName)" KeyFile="$(KeyOriginatorFile)" DelaySign="$(DelaySign)" ToolPath="$(SGenToolPath)">
  <Output TaskParameter="SerializationAssembly" ItemName="SerializationAssembly" />
 </SGen>
</Target>
Run Code Online (Sandbox Code Playgroud)

msbuild sgen visual-studio-2010 .net-reflector xmlserializer

12
推荐指数
2
解决办法
2864
查看次数

如何强制PropertyGrid显示特定属性的自定义对话框?

我有一个带有字符串属性的类,同时具有getter和setter,它通常很长,以至于PropertyGrid会截断字符串值.如何强制PropertyGrid显示省略号,然后启动包含多行文本框的对话框以便于编辑属性?我知道我可能要在属性上设置某种属性,但属性和方法是什么?我的对话框是否必须实现一些特殊的设计器界面?

更新: 可能是我的问题的答案,但我无法通过搜索找到它.我的问题更为通用,其答案可用于构建任何类型的自定义编辑器.

.net propertygrid attributes

11
推荐指数
1
解决办法
8507
查看次数

您在哪里存储代码签名证书的私钥?

我最近为我的雇主获得了代码签名证书,但我不是InstallShield开发人员,他将在分发之前签署二进制文件.我知道我可以将证书与其私钥一起导出,但是我在哪里存储它以便InstallShield开发人员可以将其安装在他的机器上?一旦我把它交给签字的人,我应该把它从机器上取下来吗?我在哪里存储主副本?显然,源代码控制并不是最好的地方,除非我在SVN中锁定该目录.

svn installshield code-signing certificate

11
推荐指数
1
解决办法
3366
查看次数

我应该使用.NET应用程序部署Interop.x.dll文件吗?

我们有一个.NET应用程序,它使用不同DLL中的COM对象,也用于我们应用程序的VB6部分.在引用COM库时,Visual Studio 2012会创建一个Interop.x.DLL并引用它.我应该从构建计算机分发Interop.x.DLL还是使用某些.NET命令行工具重新生成它?什么工具?部署引用COM的.NET应用程序的最佳实践是什么?

.net c# vb6 deployment com-interop

11
推荐指数
1
解决办法
2092
查看次数

WinForms ReportViewer在.NET 4.0中是否具有其他部署依赖性?

我最近更新了一个从.NET 3.5到.NET 4.0的WinForms应用程序,其中包含本地报告.我包括11.0版组件的Microsoft.ReportViewer.WinForms,Microsoft.ReportViewer.CommonMicrosoft.ReportViewer.ProcessingObjectModel应用程序目录,这是所有花了部署使用.net 3.5这个程序,但我得到一个目标计算机上,.NET 4.0,但没有VisualStudio中或SQL Server上出现以下错误:

TYPE: Microsoft.Reporting.WinForms.LocalProcessingException
MSG: An error occurred during local report processing.
SOURCE: Microsoft.ReportViewer.WinForms
SITE: EnsureExecutionSession
   at Microsoft.Reporting.WinForms.LocalReport.EnsureExecutionSession()
   at Microsoft.Reporting.WinForms.LocalReport.SetParameters(IEnumerable`1 parameters)
   at Ceoimage.Basecamp.MaintainDocumentIntegrity.ReportContainer._SetReportParameters(String departmentName, String footer)
   at Ceoimage.Basecamp.MaintainDocumentIntegrity.ReportContainer._RefreshReport(DataTable sourceTable, String sourceName, String reportResourceName, String departmentName, String footer)
   at Ceoimage.Basecamp.MaintainDocumentIntegrity.ReportContainer.ShowMissingReport(MissingFilesDataTable missingTable, String departmentName, String footer)
   at Ceoimage.Basecamp.MaintainDocumentIntegrity.DocumentIntegrityForm._HandleMissingComplete(Object sender, RunWorkerCompletedEventArgs e)

-- INNER EXCEPTION --
TYPE: Microsoft.Reporting.DefinitionInvalidException
MSG: The definition of the report '' is invalid.
SOURCE: Microsoft.ReportViewer.Common
SITE: CompileReport
   at Microsoft.Reporting.ReportCompiler.CompileReport(ICatalogItemContext …
Run Code Online (Sandbox Code Playgroud)

deployment reportviewer .net-4.0 winforms

10
推荐指数
1
解决办法
1万
查看次数

使用.Net应用程序部署MySQL Server + DB

大家好,

我们有一个.Net 2.0应用程序,它有一个MySQL后端.我们希望能够在安装应用程序时部署MySQl和数据库,并尝试找到最佳解决方案.当前设置是将所需文件复制到本地计算机上的文件夹,然后执行"NET START"命令以安装和启动mysql服务.然后我们使用bat文件将DB的备份恢复到这个新创建的mysql实例.它根本不是一个理想的解决方案,我试图提出更强大的东西.

问题是Vista上的用户权限,以及安装和启动服务的各种小事.它太脆弱而不可靠,或者至少它在我测试它时会出现这种情况.这是一个客户端/服务器类型设置,所以我们只需要为每个办公室安装一个服务器,但我想确保尽可能轻松,并尽可能少的屏幕.

你会怎么做?

.net mysql database deployment installation

9
推荐指数
1
解决办法
6039
查看次数

如何在"托管解决方案"中使用Active Directory?

昨天我接到了微软代表的电话,询问我们是否提供"托管解决方案",可能是大型Windows Azure推送的一部分.我一接到电话,我们的营销总监就来到我的办公室,并表示我们的大多数客户都要求在下一版本中集成Active Directory.然后我想到:如果应用程序不在客户的网络上,那么如何在"托管解决方案"中使用Active Directory?

作为一个关于Active Directory集成的更一般的问题,通常对应用程序有什么样的功能变化?这是表示用户只是通过向Active Directory进行身份验证来登录应用程序,还是表示应用程序从Active Directory获取其用户列表,或者是否在应用程序中创建新用户或组在Active Directory中创建新用户或组?

我刚陷入流行语战争的交火中吗?

active-directory hosted azure buzzword-compliance

9
推荐指数
1
解决办法
2万
查看次数

为什么Assembly.GetManifestResourceStream()中的文本以三个垃圾字符开头?

我有一个SQL文件作为嵌入式资源添加到我的VS.NET 2008项目中.每当我使用以下代码读取文件的内容时,返回的字符串总是以三个垃圾字符开头,然后是我期望的文本.我认为这与我正在使用的Encoding.Default有关,但这只是猜测.为什么这个文字会一直显示出来?我应该只删除前三个字符还是有更明智的方法?

public string GetUpdateRestoreSchemaScript()
{
    var type = GetType();
    var a = Assembly.GetAssembly(type);
    var script = "UpdateRestoreSchema.sql";
    var resourceName = String.Concat(type.Namespace, ".", script);
    using(Stream stream = a.GetManifestResourceStream(resourceName))
    {
        byte[] buffer = new byte[stream.Length];
        stream.Read(buffer, 0, buffer.Length);
        // UPDATE: Should be Encoding.UTF8
        return Encoding.Default.GetString(buffer);
    }
}
Run Code Online (Sandbox Code Playgroud)

更新: 我现在知道,如果我只是更改最后一行以返回UTF-8编码的字符串,我的代码将按预期工作.这个嵌入式文件总是如此,但它总是如此吗?有没有办法测试任何缓冲区来确定其编码?

c# resources encoding visual-studio-2008

9
推荐指数
1
解决办法
5971
查看次数

您如何提出应用程序的最低硬件规格?

我们开发了一个企业应用程序,我们需要记录以下目标部署的最低硬件要求:

  1. 胖客户端
  2. 数据库/应用程序服务器(我们运行需要访问数据库的多个服务器端进程和文件服务器,通常是同一台机器)
  3. 网络服务器

我们抛出的一些想法包括将要求基于我们的测试环境,基于每个目标组件的最高规格要求,以及基于当前可用硬件的规格.

你如何提出你的硬件规格?

language-agnostic hardware specifications

9
推荐指数
1
解决办法
404
查看次数

为什么测试DateTime相等时此单元测试失败?

在.NET 3.5上使用NUnit 2.2时,使用DateTime.Equals时,以下测试失败.为什么?

[TestFixture]
public class AttributeValueModelTest
{
    public class HasDate
    {
        public DateTime? DateValue
        {
            get
            {
                DateTime value;
                return DateTime.TryParse(ObjectValue.ToString(), out value) ? value : new DateTime?();
            }
        }

        public object ObjectValue { get; set; }
    }

    [Test]
    public void TwoDates()
    {
        DateTime actual = DateTime.Now;
        var date = new HasDate {ObjectValue = actual};
        Assert.IsTrue(date.DateValue.Value.Equals(actual));
    }
}
Run Code Online (Sandbox Code Playgroud)

datetime nunit unit-testing .net-3.5

8
推荐指数
1
解决办法
2911
查看次数