小编sea*_*ean的帖子

我应该让热量产生 guids 吗?在编译期间尝试自动生成时出错,因为我没有使用标准目录

我的第一个问题是,我应该努力让编译器使用自动生成的 guid 吗?

我正在尝试使用 WiX 为网站创建安装程序。请原谅我的无知,这是我的第一个 WiX 项目。我正在关注这篇文章:

http://blog.bartdemeyer.be/2013/10/create-an-installer-for-website-with-wix-part-1/

该过程使用 msbuild 调用多个 WiX 工具以最终创建 MSI。该示例在调用 heat 时使用“Generate guids now”(“-gg”开关):

<Target Name="Harvest">
    <!-- Harvest all content of published result -->
    <Exec
        Command='"$(WiX)bin\heat.exe" dir $(Publish) -dr INSTALLFOLDER -ke -srd -cg MgrWebComponents -var var.publishDir -gg -out $(WebSiteContentCode)'
        ContinueOnError="false"
        WorkingDirectory="." />
</Target>
Run Code Online (Sandbox Code Playgroud)

我在别处阅读最佳做法是使用自动生成的 guid(-ag 开关)来确保正确安装产品更新。我注意到每次运行加热时 guid 都会发生变化。

<Fragment>
    <ComponentGroup Id="MgrWebComponents">
        <Component Id="cmp56294569B275493319100C26538BA16C" Directory="INSTALLFOLDER" Guid="{A43DA07B-C4CD-4FE0-AC09-EEA693AB2BA7}">
            <File Id="fil93D55732EC03C2B809F21B9423BF5550" KeyPath="yes" Source="$(var.publishDir)\BrandImageService.ashx" />
        </Component>
        <Component Id="cmp6BD39B2D572EA73C29A81AE5D1C3F0C4" Directory="INSTALLFOLDER" Guid="{99B7B916-AEC0-4EE9-B17F-E7B325E93A4D}">
            <File Id="filE861424851E26D456D43F5D1855B3E7B" KeyPath="yes" Source="$(var.publishDir)\Dashboard.aspx" />
        </Component>
...
Run Code Online (Sandbox Code Playgroud)

如果我应该使用自动生成的 guid,我需要让编译器正常工作。我在编译时尝试使用自动生成的 guid …

msbuild wix

6
推荐指数
1
解决办法
1486
查看次数

无法序列化 System.Collections.Generic.Dictionary`2 类型的成员 ...,因为它实现了 IDictionary

我试图通过 WCF 传递一个带有 Dictionary 属性的类,对于一种方法失败,但对于另一种方法有效。当类在 a 内返回时List,它就起作用了。但是当类在 a 中返回时DataTable,客户端只是说连接已断开并且没有显示错误。

这是引起问题的类:

[DataContract]
public class DetailLog
{
    [DataMember]
    public string Name
    {
        get;
        set;
    }

    [DataMember]
    public string SubAction
    {
        get;
        set;
    }

    [DataMember]
    public Dictionary<string, string> Fields
    {
        get;
        set;
    }

    [DataMember]
    public string UserName
    {
        get;
        set;
    }
}
Run Code Online (Sandbox Code Playgroud)

我开始创建一个没有问题的方法:

public List<DetailLog> GetDetailLog(List<int> IDs, List<int> actionTypeIds, List<int> userIds, DateTime beginDate, DateTime endDate)
Run Code Online (Sandbox Code Playgroud)

然后我们需要创建一些非常动态的报告,因此我使用了我们之前用于其他动态报告的数据表。

但我需要传递 DetailLog 类,因此我创建了该类型的 DataTable 列:

public DataTable GetCustomDetailReport(int CustomReportID, List<CustomReportFilter> reportFilters)
{
DataTable …
Run Code Online (Sandbox Code Playgroud)

c# wcf serialization datacontractserializer

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

无法访问我的Asp.Net Core项目中的帮助器类内的Session对象

我正在尝试在ASP.NET Core 2.1项目中的帮助器类中访问HttpContext.Session对象。

当我尝试访问HttpContext.Session时,出现以下错误。

CS0120非静态字段,方法或属性'HttpContext.Session'需要对象引用

使用.NET 4.x ASP.NET,可以使用“ HttpContext.Current.Session”轻松访问它。

这是我的课:

 public class MySession
 {

    public void Foo()
    {
        HttpContext.Session.SetString("Name", "The Doctor"); // will not work
        HttpContext.Session.SetInt32("Age", 773);  // will not work

    }
 }
Run Code Online (Sandbox Code Playgroud)

这是我的Startup.cs:

    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDistributedMemoryCache();

            services.AddSession(options =>
            {
                // Set …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core-2.0

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

如何使Windows安装程序(WiX)始终认为它正在运行升级或新安装?

这是SQL数据库的安装程序.它确实不会更改本地计算机上的任何内容,但会连接到数据库以进行更改.

用户可以从一台计算机升级3个不同的数据库服务器,这样他们就可以使用相同的对话框运行3次.

我希望安装程序始终显示我设置的相同自定义对话框.我不希望它进入维护对话框.

我已将MajorUpgrade标记设置为如此,文档中说明了"AllowSameVersionUpgrades"

 <MajorUpgrade AllowDowngrades="yes" />
Run Code Online (Sandbox Code Playgroud)

我尝试更改对话框"下一步"按钮.NewDBDlg是一个自定义屏幕.

 <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="NewDBDlg">1</Publish>
 <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="NewDBDlg">1</Publish> 
Run Code Online (Sandbox Code Playgroud)

这样的工作,但它到达最后一个"VerifyReadyDlg"屏幕,它只是一个空白,只有一个"后退"和"取消"按钮.

我是朝着正确的方向前进还是应该尝试其他方法,例如在安装过程中删除安装?

wix

0
推荐指数
1
解决办法
338
查看次数